import { fileURLToPath, URL } from "node:url";

import { defineConfig } from "vite";
import vue from "@vitejs/plugin-vue";
import vueJsx from "@vitejs/plugin-vue-jsx";
import vueDevTools from "vite-plugin-vue-devtools";
import electron from 'vite-plugin-electron'; // 注意：确保已安装此插件 npm install vite-plugin-electron --save-dev

// https://vite.dev/config/
export default defineConfig({
  plugins: [
    vue(),
    vueJsx(),
    vueDevTools(),
    electron({
      main: {
        entry: "electron/main.js", // Electron主进程入口文件的位置。
      },
      preload: {
        // Electron预加载脚本的位置。你可以在这里添加额外的预加载脚本。
        entries: "electron/preload.js", // 可选。如果你不需要预加载脚本，可以省略此项。
      },
      renderer: {
        // 对于渲染进程，通常不需要特别配置，除非你需要定制化某些行为。
        // 这里可以配置渲染进程的入口等，但通常Vite会自动处理Vue组件。如果你有特殊的渲染进程入口，可以在这里指定。
      },
    }),
  ],
  build: {
    // 确保构建输出到Electron可以找到的位置。通常是在dist目录下。
    outDir: "dist", // 构建输出的目录，Electron将会从这个目录加载HTML和JavaScript文件。
    rollupOptions: {
      // 自定义rollup配置，例如入口点。对于大多数Vue项目来说，默认配置应该就足够了。
      input: {
        // 指定多个入口点，这对于Electron来说不是必需的，但如果你有多个页面或特殊情况需要这么做，可以在这里配置。例如：index: resolve(__dirname, 'index.html') }
      },
    },
  },
  resolve: {
    alias: {
      "@": fileURLToPath(new URL("./src", import.meta.url)),
    },
  },
});

// import { defineConfig } from 'vite';
// import vue from '@vitejs/plugin-vue';
// import electron from 'vite-plugin-electron'; // 注意：确保已安装此插件 npm install vite-plugin-electron --save-dev
// import { resolve } from 'path'; // 使用Node.js的path模块来正确解析路径。

// export default defineConfig({
//   plugins: [
//     vue(),
//     electron({
//       main: {
//         entry: 'electron/main.js', // Electron主进程入口文件的位置。
//       },
//       preload: {
//         // Electron预加载脚本的位置。你可以在这里添加额外的预加载脚本。
//         entries: 'electron/preload.js' // 可选。如果你不需要预加载脚本，可以省略此项。
//       },
//       renderer: { // 对于渲染进程，通常不需要特别配置，除非你需要定制化某些行为。
//         // 这里可以配置渲染进程的入口等，但通常Vite会自动处理Vue组件。如果你有特殊的渲染进程入口，可以在这里指定。
//       }
//     })
//   ],
//   build: { // 确保构建输出到Electron可以找到的位置。通常是在dist目录下。
//     outDir: 'dist', // 构建输出的目录，Electron将会从这个目录加载HTML和JavaScript文件。
//     rollupOptions: { // 自定义rollup配置，例如入口点。对于大多数Vue项目来说，默认配置应该就足够了。
//       input: { // 指定多个入口点，这对于Electron来说不是必需的，但如果你有多个页面或特殊情况需要这么做，可以在这里配置。例如：index: resolve(__dirname, 'index.html') }
//     }
//   }
// });
